package kr.pe.johnkim.chattingday.mobile.rest.service;

import kr.pe.johnkim.chattingday.mobile.domain.ChattingDayGatheringJoiner;
import kr.pe.johnkim.chattingday.mobile.domain.ChattingDayMember;

import java.util.List;

/**
 * Chatting Day 채팅방 참여자 Service 메소드들을 정의하는 인터페이스 이다.
 * 
 * @author : johnkim <cale9797@gmail.com / Bettersoft Inc,.>
 * @Date : 12. 6. 7
 */
public interface ChattingDayGatheringJoinerService {
     /**
     * 채팅방에 참여 한다.
     *
     * @param chattingDayGatheringJoiner
     * @return
     */
    public boolean registerGatheringJoiner(ChattingDayGatheringJoiner chattingDayGatheringJoiner);

    /**
     * 채팅방에서 나온다.
     *
     * 나 자신을 채팅방에서 비활성화 처리 한다.
     *
     * @param chattingDayGatheringJoiner
     * @return
     */
    public boolean updateDeactivateGatheringJoiner(ChattingDayGatheringJoiner chattingDayGatheringJoiner);

    /**
     * 채팅방의 모든 사용자들을 비활성와 처리 한다.
     *
     * @param chattingDayGatheringJoiner
     * @return
     */
    public boolean updateDeactivateAllGatheringJoiner(ChattingDayGatheringJoiner chattingDayGatheringJoiner);

    /**
     * C2DM 메시지 발송을 위해서 채팅방 참여자들의 REGISTRATION ID 목록을 가져 온다.
     *
     * @param chattingDayGatheringJoiner
     * @return
     */
    public List<ChattingDayMember> selectRegistrationIdList(ChattingDayGatheringJoiner chattingDayGatheringJoiner);
}
